package com.heima.utils.thread;

import com.heima.model.wemedia.pojos.WmUser;

//这里封装了一个工具类WmThreadLocalUtil，其实就是一个线程类，用于获取当前用户的id
//主要功能是在多线程环境下为每个线程提供独立的WmUser对象存储和访问机制
public class WmThreadLocalUtil {

    //ThreadLocal是一种线程局部变量，每个使用该变量的线程都会得到该变量的一个独立的副本
    private final static ThreadLocal<WmUser> WM_USER_THREAD_LOCAL = new ThreadLocal<>();

    /**
     * 添加用户
     * @param wmUser
     */
    public static void  setUser(WmUser wmUser){
        WM_USER_THREAD_LOCAL.set(wmUser);
    }

    /**
     * 获取用户
     */
    public static WmUser getUser(){
        return WM_USER_THREAD_LOCAL.get();
    }

    /**
     * 清理用户
     */
    public static void clear(){
        WM_USER_THREAD_LOCAL.remove();
    }
}